package com.itheima.spring.beans;

/**
 * IOC容器
 * 1）创建
 * 2）管理bean(注册Bean)
 * 3）是一个工厂（BeanFactory）
 * 4）对外提供bean实例（BeanFactory  ---> getBean()）
 */
public interface BeanFactory {

    /**
     *
     * @param name 通过bean name获取bean
     * @return
     * @throws Exception
     */
    Object getBean(String name) throws Exception, Throwable;

    /**
     * 注册AOP织入(注册AOP增强处理的观察者实现)
     * @param bpp
     */
    void registerBeanPostProcessor(BeanPostProcessor bpp);

}
